package br.com.ava.view.funcionario;

import java.io.IOException;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;

import br.com.ava.core.funcionario.Funcionario;
import br.com.ava.core.funcionario.FuncionarioMediator;
import br.com.ava.core.infra.excecao.NegocioException;
import br.com.ava.view.AplicacaoMB;

@ManagedBean
public class FuncionarioIncluirMB extends AplicacaoMB {

	private Funcionario funcionario;

	@ManagedProperty(value = "#{funcionarioMediator}")
	private FuncionarioMediator funcionarioMediator;

	public FuncionarioIncluirMB() {
		this.funcionario = new Funcionario();
	}

	@PostConstruct
	public void init() {
		validarPermissao();
	}

	public void confirmar() throws IOException {

		try {
			funcionarioMediator.salvar(funcionario);
			adicionarMensagemCadastroSucesso();
			funcionario = new Funcionario();
		} catch (NegocioException erro) {
			adicionarMensagemErro(erro.getMensagens());
		}
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	public FuncionarioMediator getFuncionarioMediator() {
		return funcionarioMediator;
	}

	public void setFuncionarioMediator(FuncionarioMediator funcionarioMediator) {
		this.funcionarioMediator = funcionarioMediator;
	}

	@Override
	public String perfilPagina() {
		return "administrador";
	}

}
